/**
*
* Konrad Beckmann 2011-01-15
* konrad.beckmann@gmail.com
*
*/
#ifndef _TEXTURE_PNG_H_
#define _TEXTURE__PNG_H_
/* Structs */

/**
* textureInfo
*
* Information about a texture
* uiWidth	Width of the texture
* uiHeight	Height of the texture
* ucFilter	1-bit value of the chosen filtering 
*				0(MipMapped NN), 1(MipMapped Linear)
* GLuint		Pointer to an OpenGL-texture
*
*/
typedef struct _textureInfo
{
	unsigned int	uiWidth;
	unsigned int	uiHeight;
	unsigned char	ucFilter : 1;
	GLuint			gluiTexture;
} textureInfo;

/**
* Image
*
* Information about a raw image
* uiWidth	Width of the texture
* uiHeight	Height of the texture
* pucData	Pointer to the raw data
*
*/
typedef struct _Image
{
    unsigned int	uiWidth;
    unsigned int	uiHeight;
    unsigned char	*pucData;
} Image;

Image load_png_image(const char *pucFileName, unsigned char ucKeepAlpha, unsigned char ucPixelSize);
textureInfo LoadTexturePNG(const char *pucFilename, unsigned int uiDepth, unsigned char ucFilter);

#endif
